package com.example.designpatterns.composite;

/*
* 组合模式是一种结构型设计模式，用于将对象组合成树形结构以表示“部分-整体”的层次结构。
* 通过组合模式，客户端可以统一地处理单个对象和组合对象。
*
* */
// 客户端代码：演示如何使用组合模式
public class CompositePatternDemo {
    public static void main(String[] args) {
        // 创建根目录
        Composite root = new Composite("根目录");

        // 创建子目录
        Composite dir1 = new Composite("目录1");
        Composite dir2 = new Composite("目录2");

        // 创建文件
        Leaf file1 = new Leaf("文件1.txt");
        Leaf file2 = new Leaf("文件2.txt");
        Leaf file3 = new Leaf("文件3.txt");

        // 组装树形结构
        root.add(dir1);
        root.add(dir2);
        dir1.add(file1);
        dir1.add(file2);
        dir2.add(file3);

        // 显示整个树形结构
        root.display(0);
    }
}